package com.ly.cloud.mapper;


import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.plugins.pagination.Pagination;
import com.ly.cloud.dto.ClassInfoDropDownDto;
import com.ly.cloud.dto.ClassInfoDto;
import com.ly.cloud.entity.ClassInfoPo;
import com.ly.cloud.vo.ClassInfoDropDownVo;
import com.ly.cloud.vo.ClassInfoVo;
import com.ly.cloud.vo.DepartmentVo;
import com.ly.cloud.vo.NjZyTemplateVo;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @Description:
 * @Author: pengshiqing
 * @CreateDate: 2018/12/19
 */
@Mapper
public interface ClassInfoMapper extends BaseMapper<ClassInfoPo> {

    //分页+条件查询
    List<ClassInfoVo> selectPage(@Param("page") Pagination page , @Param("dto") ClassInfoDto dto);

    //查询所有的年级
    List<String> findAllGrade();

    //根据年级查询所有的学院
    List<DepartmentVo> findAllCollegeByGrade(@Param("grade") String grade);

    //根据年级和学院查询所有的专业
    List<NjZyTemplateVo> findAllProfessional(@Param("grade")String grade, @Param("college")String college);
    
    /** 
   	 * Method Name: selectDropDownBjxx
   	 * Description:  
   	 * 根据条件查询班级下拉列表
   	 * @param dto 条件封装
   	 * @return 班级下拉列表
   	 * @author luhuacong
   	 * @date: 2018年12月20日
   	 */
    List<ClassInfoDropDownVo> selectDropDownBjxx(@Param("dto") ClassInfoDropDownDto dto);

    /** 
	 * Method Name: insertBjList
	 * Description:  
	 * 批量创建班级
	 * @param dto
	 * @return 成功创建的班级个数
	 * @author luhuacong
	 * @date: 2018年12月17日
	 */
    Integer insertBjList(@Param("classList") List<ClassInfoDto> classList);
    
    /** 
	 * Method Name: selectCount
	 * Description:  
	 * 查询某个专业班级的个数
	 * @param njzydm 年级专业代码
	 * @return 班级的个数
	 * @author luhuacong
	 * @date: 2018年12月17日
	 */
    Integer selectCount(@Param("njzydm") String njzydm);
    
}